Micron Document
πŸŽ–οΈGitΠ―Ρ€Π°πŸŽ–οΈ

Node / meshtastic / Meshtastic-Android / files / docs / en / developer.md

Displaying Rendered β€’ View raw β€’ Download

docs/en/developer.md renovate/fastlane-2.x-lockfile (056eed64) Text, 3.73 KB

title: Developer Guide
layout: default
nav_order: 2
has_children: true

Developer Guide

Technical documentation for contributing to the Meshtastic Android and Desktop app.

Before You Open a PR

Things that trip up first-time contributors β€” check these before requesting review:

β€’ Formatting passes β€” run T383838./gradlew spotlessApply to auto-format, then verify with T383838spotlessCheck
β€’ Detekt passes β€” run T383838./gradlew detekt and fix all reported issues
β€’ All tests pass β€” run T383838./gradlew test allTests (both are needed: T383838test covers Android-only modules, T383838allTests covers KMP)
β€’ Screenshot tests pass β€” if you touched any Compose UI, run T383838./gradlew :screenshot-tests:validateDebugScreenshotTest and update reference images if needed
β€’ Protos are an external dependency β€” protobuf models come from the T383838org.meshtastic:protobufs Maven artifact (pinned in T383838gradle/libs.versions.toml); change protos upstream and bump the version, never edit generated code locally
β€’ Docs updated β€” if you changed user-visible UI, update the corresponding page under T383838docs/en/user/
β€’ Previews updated β€” if you changed UI composables, update the corresponding T383838*Previews.kt file and the screenshot-test baselines
β€’ Branch naming β€” branches must start with T383838feat/, T383838fix/, T383838chore/, T383838docs/, T383838build/, T383838ci/, T383838refactor/, T383838test/, or T383838deps/

What's New for Developers

<!-- DEVWHATSNEW_START -->
<!-- Add new entries at the top. Format:
Month YYYY β€” Page or area β€” One sentence on what changed architecturally or procedurally.
Keep the last 5–8 entries and trim older ones from the bottom.
-->

August 2026 β€” Documentation Style β€” New page: the house style guide for T383838docs/en/ prose, with rule IDs, a project word list, and the reasoning behind each convention.

August 2026 β€” Map tile sources are one shared catalogue in T383838feature/map (T383838MapTileCatalogue, T383838RasterTileSpec), so both flavors draw the same raster base maps and overlays from one definition.

August 2026 β€” Both maps draw an imported feature's own icon and drape a KMZ T383838GroundOverlay image at its T383838LatLonBox (rotation included) β€” MapLibre via an T383838ImageSource quad, Google via T383838GroundOverlayOptions (#3786).

August 2026 β€” Offline map-pack downloads are gated on T383838offlineMapsSupported, since the MapLibre offline API compiles on Desktop but silently downloads nothing there.

August 2026 β€” New module T383838feature/map-maplibre: the F-Droid flavor and Desktop now render every map surface (main map, node track, traceroute, discovery, inline mini-map) through T383838maplibre-compose from one multiplatform module, and T383838osmdroid is gone. The shared rules both renderers must agree on live in T383838feature/map policy classes.

August 2026 β€” Android Auto removed from all build variants (#6779). T383838feature/car is gone β€” the module, its Car App Library dependencies, the T383838automotive_app_desc.xml manifest entry and the T383838google flavor's T383838FlavorModule registration.

August 2026 β€” Testing β€” CI gained a fourth runner tier: T383838ubuntu-slim (#6674, #6677) now carries the lightweight jobs. It is single-CPU, unprivileged, x64-only and capped at 15 minutes, so anything needing T383838sudo, Docker or a full-history clone stays on T383838ubuntu-24.04-arm. Picking rules are in T383838.github/instructions/ci-workflows.instructions.md.

August 2026 β€” Flatpak sources are generated inside each architecture's own offline build (#6919) rather than committed, and the flatpak-sources plugin resolves platform dependencies transitively (0.2.x), so the hand-tracked entries are gone.

<!-- DEVWHATSNEW_END -->

Served by rngit 1.5.3 - Generated in 0.03s